package org.jflame.context.security;

import java.util.Collection;

public interface SecurityService {

    /**
     * 返回用户
     * 
     * @return
     */
    Object getPrincipal();

    /**
     * 判断当前用户是否有指定权限
     * 
     * @param authority 权限标识
     * @return
     */
    boolean hasAuthority(String authority);

    /**
     * 判断当前用户是否有指定的任意一个权限
     * 
     * @param authority 权限标识
     * @return
     */
    boolean hasAnyAuthority(String... authority);

    /**
     * 判断当前用户是否有指定角色
     * 
     * @param role 角色标识
     * @return
     */
    boolean hasRole(String role);

    /**
     * 判断当前用户是否有指定的任意一个角色
     * 
     * @param role 角色标识
     * @return 有任意一个返回true
     */
    boolean hasAnyRole(String... role);

    boolean hasAllRoles(Collection<String> roleSet);
}
